package com.mt.demo.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mt.demo.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 会议主对象 mt_meeting
 * 
 * @author gary
 * @date 2025-08-11
 */
public class MtMeeting extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 会议ID */
    private Long meetingId;

    /** 会议号（唯一短码） */
    @Excel(name = "会议号", readConverterExp = "唯=一短码")
    private String meetingNo;

    @Excel(name = "会议名称")
    private String meetingName;

    /** 会议主题 */
    @Excel(name = "会议主题")
    private String subject;

    /** 主持人用户ID */
    @Excel(name = "主持人用户ID")
    private Long hostUserId;

    /** 主持人用户名字 */
    @Excel(name = "主持人用户名字")
    private String hostNickName;

    /** 是否允许全员上传 yes-允许 no-仅主持人 */
    @Excel(name = "是否允许全员上传 yes-允许 no-仅主持人")
    private String allowAll;

    /** 状态 ing-进行中 ed-已结束 */
    @Excel(name = "状态 ing-进行中 ed-已结束")
    private String status;

    /** 会议开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会议开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 会议结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "会议结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 总累计时长（秒） */
    @Excel(name = "总累计时长", readConverterExp = "秒=")
    private Long totalSeconds;

    public String getMeetingName() {
        return meetingName;
    }

    public void setMeetingName(String meetingName) {
        this.meetingName = meetingName;
    }

    public void setMeetingId(Long meetingId)
    {
        this.meetingId = meetingId;
    }

    public Long getMeetingId() 
    {
        return meetingId;
    }

    public void setMeetingNo(String meetingNo) 
    {
        this.meetingNo = meetingNo;
    }

    public String getMeetingNo() 
    {
        return meetingNo;
    }

    public void setSubject(String subject) 
    {
        this.subject = subject;
    }

    public String getSubject() 
    {
        return subject;
    }

    public void setHostUserId(Long hostUserId) 
    {
        this.hostUserId = hostUserId;
    }

    public Long getHostUserId() 
    {
        return hostUserId;
    }

    public String getHostNickName() {
        return hostNickName;
    }

    public void setHostNickName(String hostNickName) {
        this.hostNickName = hostNickName;
    }

    public void setAllowAll(String allowAll)
    {
        this.allowAll = allowAll;
    }

    public String getAllowAll() 
    {
        return allowAll;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setTotalSeconds(Long totalSeconds) 
    {
        this.totalSeconds = totalSeconds;
    }

    public Long getTotalSeconds() 
    {
        return totalSeconds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("meetingId", getMeetingId())
            .append("meetingNo", getMeetingNo())
            .append("subject", getSubject())
            .append("hostUserId", getHostUserId())
            .append("hostNickName", getHostNickName())
            .append("allowAll", getAllowAll())
            .append("status", getStatus())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("totalSeconds", getTotalSeconds())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
